﻿package com.eitb.programas.multimediaAutomatico {
	import flash.display.*;
	import com.eitb.colecciones.*;
	import com.eitb.cargadores.*;
	import com.eitb.imagenes.*;
	
	import flash.text.*;

	public class DialogoMultimediaAutomatico extends Sprite implements IVistaMultimediaAutomatico, IVistaTextosAutomaticos, IVistaImagenesAutomaticas {
		private var xmlData:XML;
		private var textos:Array;
		private var imagenes:Array;
		private var cMultimediaAutomatico:IControladorMultimediaAutomatico;
		private var cCargador:IControladorCargador;
		
		public function DialogoMultimediaAutomatico():void {
			this.textos = new Array();
			this.imagenes = new Array();

			for (var i=0; i < this.numChildren; i++) {
				if (this.getChildAt(i) is TextField) {
					this.textos.push(this.getChildAt(i));
				}else if (this.getChildAt(i) is MovieClip) {
					this.imagenes.push(this.getChildAt(i));
				}
			}

			this.textos = this.textos.sort(new OrdenarDisplayObject().porPosicion);
			this.imagenes = this.imagenes.sort(new OrdenarDisplayObject().porPosicion);
		}
		
		public function initControlador(cMultimediaAutomatico:IControladorMultimediaAutomatico):void {
			this.cMultimediaAutomatico = cMultimediaAutomatico;
		}

		public function initXmlData(xmlData:XML):void {
			this.xmlData = xmlData;
		}
		
		// CARGADOR
		public function initControladorCargador(cCargador:IControladorCargador):void {
			this.cCargador = cCargador;
		}
		// CARGADOR
		
		// IVistaMultimediaAutomatico
		public function setVisible(visible:Boolean):void {
			this.visible = visible;
		}
		// IVistaMultimediaAutomatico
		
		// IVistaTextosAutomaticos
		public function setTextos(textos:XMLList):void {
			if (null!=textos) {
				for (var i=0; i < this.textos.length; i++) {
					if (null==textos.texto[i]) {
						break;
					}
					this.textos[i].text=textos.texto[i];
				}
			}
		}
		// IVistaTextosAutomaticos
		// IVistaImagenesAutomaticas
		public function getImagenWidth(nImagen:int):Number {
			return this.imagenes[nImagen].width;
		}
		public function getImagenHeight(nImagen:int):Number {
			return this.imagenes[nImagen].height;
		}
		public function setImagenBitmap(nImagen:int,bitmap:DisplayObject):void {
			this.imagenes[nImagen].addChild(bitmap);
		}
		// IVistaImagenesAutomaticas
	}
}